/*
 * @Author: SimonCK666 SimonYang223@163.com
 * @Date: 2022-05-07 20:40:01
 * @LastEditors: SimonCK666 SimonYang223@163.com
 * @LastEditTime: 2022-05-07 20:48:28
 * @FilePath: \golang-concept\L4_gofunc\anonymous.go
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 */
package main

import (
	"fmt"
)

// go 中函数不能嵌套，但是在函数内部可以定义匿名函数，实现简单功能调用
// 所谓匿名函数就是，没有名称的函数

func test1_anon() {
	name := "Simon "
	age := "21"

	// 在函数内部做一些运算
	f1 := func() string {
		return name + age
	}

	msg := f1()
	fmt.Printf("msg: %v\n", msg)
}

func anon_opt() {
	// 匿名函数
	max := func(a int, b int) int {
		if a > b {
			return a
		} else {
			return b
		}
	}

	r := max(1, 2)
	fmt.Printf("r: %v\n", r)

	// 自己调用自己
	r = func(a int, b int) int {
		if a > b {
			return a
		} else {
			return b
		}
	}(1, 2)

	fmt.Printf("r: %v\n", r)

	test1_anon()
}
